第4章 ブロック暗号のモード
ブロック暗号
ブロック(ある特定のビット列のまとまり)単位で処理を行う暗号アルゴリズムの総称
ブロック単位で処理を行うので、どこまで暗号化を行ったかの内部状態を保持する必要がない
例)DES、AES(Rijndael)、etc...
ストリーム暗号
データの流れを順次処理していく暗号アルゴリズムの総称
どこまで暗号化を行ったかの内部状態を保持する必要がある。
例)使い捨てパッド
モード
暗号化対象の平文がブロック長に収まらない場合に、繰り返し暗号化を行う方法
ECBモード
初めからブロッックごとに分けて順次暗号化する。
攻撃方法
暗号文ブロック同士を入れ替えると、解読せずに平文を操作できる。
CBCモード
一つ前の暗号文ブロックと平文ブロックのXORを取ってから暗号化を行う。
最初の平文ブロックを暗号化するときは、初期化ベクトルとしてビット列1ブロック分用意する。
攻撃方法
CFBモード
一つ前の暗号文ブロックを暗号アルゴリズムの入力に加える
攻撃方法
OFBモード
暗号アルゴリズムの出力を暗号アルゴリズムの入力にフィードバックする
CTRモード
1ずつ増加するカウンタを暗号化して鍵ストリームを作り出すストリーム暗号